Computer systems operate by executing instruction sequences that form a computer program. These instruction sequences are stored in a memory subsystem along with any data operated on by the instructions, both of which are retrieved as necessary by a processor, such as a central processing unit (CPU). Memory subsystems have a limited capacity, which can be extended further through various hardware and software compression techniques. One type of compression technique is data deduplication, which includes various techniques for avoiding storing duplicate copies of the same data in the memory. In essence, one copy of a data string is stored in memory, and other copies of the same data string are written to memory as a pointer to the one copy of the data string. Thus, a read request for any of the matching data strings causes a copy of the stored data string to be read out to fill the request. Such a technique increases the capacity of the memory, reduces wear on the memory, and improves read and write latencies.